#include <stdlib.h>
#include <iostream>
#include <verilated.h>
#include <verilated_vcd_c.h>
#include "VIDU__Syms.h"

#define MAX_SIM_TIME 20
int sim_time = 0;
uint64_t rand_uint64_slow(void) {
  uint64_t r = 0;
  for (int i=0; i<64; i++) {
    r = r*2 + rand()%2;
  }
  return r;
}

int main(int argc, char** argv, char** env) {
    VIDU *dut = new VIDU;
    uint64_t inst[3] = {0x06400293,0xFFF28313,0x00030393};
    while (sim_time < 3) {
        dut->inst = inst[sim_time];
        dut->eval();
        printf("rs1=%d rd=%d ALUop=%d imm=%lx\n", dut->rs1, dut->rd, dut->ALUop, dut->imm);
        sim_time++;
    }
    delete dut;
    exit(EXIT_SUCCESS);
}